Computer software is generally written in one country, and reflects local customs, language, user interface constructs and other features that are local to a country or target markets. Localization is a term used to describe the modification of software for use in different countries or for one or more different groups of users to accommodate the language, customs and culture of the individual target markets.
Localization of computer program products generally includes translating software messages, menus, documentation and packaging, changing the time, date, decimal and currency formats, changing comparison and sorting routes, changing character sets, input methods and keyboard layouts, changing displayable and printable fonts, and printing devices, modifying input and output software routines to display, enter and print diverse single and multi-byte character sets; and accommodating local laws and customs.
Different cultures and countries have different rules for punctuation, word order, sorting, the order of items in addresses, currency measures and conversions, number formats and other local idiosyncrasies. Many native languages and customs have different meanings for certain symbols used as computer icons as well as colors which may be used to indicate some special meaning. Localization of a computer product from one locale to another to accommodate such differences may involve translation of the software documentation into the new language, translation of the textual messages embedded in the software into the new language, incorporation of additional software facilities to make input and output of the new language and perhaps new characters possible, adapting the software to accommodate the customs and conventions of the new locale, and testing and assurance that the modified product works as intended.